package com.ideaaedi.zoo.example.springboot.flowable.sharding.entity.dto;

import com.ideaaedi.zoo.example.springboot.flowable.sharding.entity.tuple.StrObjVar;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Collection;

/**
 * (non-javadoc)
 *
 * @author <font size = "20" color = "#3CAA3C"><a href="https://gitee.com/JustryDeng">JustryDeng</a></font> <img
 * src="https://gitee.com/JustryDeng/shared-files/raw/master/JustryDeng/avatar.jpg" />
 * @since 1.0.0
 */
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class ShardingProcessListQueryDTO extends ShardingBaseQueryDTO {
    
    /**
     * 租户值
     */
    @Nonnull
    private String tenant;
    
    /**
     * 流程业务状态
     */
    @Nullable
    private String businessKey;
    
    /**
     * 流程实例ids
     */
    @Nullable
    private Collection<String> processInstanceIds;
    
    /**
     * 流程实例发起人
     */
    @Nullable
    private String startedBy;
    
    /**
     * 查询流程变量中存在指定键值对的流程实例
     */
    @Nullable
    private Collection<StrObjVar> processVariableValueEqualsColl;
    
    /**
     * 是否查询出流程实例相关的变量
     */
    private Boolean queryProcessVariables;
}
